package main

import (
	"bufio"
	"flag"
	"fmt"
	"net"
	logger "testProject/log"
)

func OnConnection(conn net.Conn) {
	for {

		//先读取数据

		reader := bufio.NewReader(conn)

		var buf [1024]byte

		n, error_msg := reader.Read(buf[0:])

		if error_msg != nil {
			logger.Error(error_msg.Error())
			return
		}
		logger.Info("读取到的数据长度为: %d", n)
		fmt.Println(string(buf[:n]))

		//发回

		writer := bufio.NewWriter(conn)

		_, error_msg = writer.Write(buf[:n])
		writer.Flush()
		if error_msg != nil {
			logger.Error(error_msg.Error())
			return
		}

	}
}
func main() {
	// 配置glog参数
	flag.Set("logtostderr", "true") // 强制所有日志输出到控制台
	flag.Set("v", "0")              // 设置日志级别为INFO(0)，显示所有INFO及以上的日志
	// 解析命令行参数
	flag.Parse()
	//listener == 监听器
	listener, err_msg := net.Listen("tcp", "127.0.0.1:9090")
	if err_msg != nil {
		logger.Error(err_msg.Error())
	}

	for {
		newConnection, err_msg := listener.Accept()
		if err_msg != nil {
			logger.Error(err_msg.Error())
			continue
		}
		//handler
		go OnConnection(newConnection)
	}
}
